package com.wang.lottery.domain.activity.service.stateflow;

import com.wang.lottery.common.Constants;
import com.wang.lottery.common.Result;

/**
 * @author wjh
 * @create 2023-11-04 18:47
 * 状态处理接口
 */
public interface IStateHandler {

    /**
     * 编辑
     * @param activityId 活动id
     * @param stateId 当前状态
     * @return 审核结果
     */
    Result edit(Long activityId, Constants.ActivityState stateId);
    
    /**
     * 提审
     * @param activityId 活动id
     * @param stateId 当前状态
     * @return 审核结果
     */
    Result arraignment(Long activityId, Constants.ActivityState stateId);
    
    /**
     * 审核通过
     * @param activityId 活动id
     * @param stateId 当前状态
     * @return 审核结果
     */
    Result checkPass(Long activityId, Constants.ActivityState stateId);
    
    /**
     * 审核拒绝
     * @param activityId 活动id
     * @param stateId 当前状态
     * @return 审核结果
     */
    Result checkRefuse(Long activityId, Constants.ActivityState stateId);
    
    /**
     * 撤销审核
     * @param activityId 活动id
     * @param stateId 当前状态
     * @return 审核结果
     */
    Result checkRevoke(Long activityId, Constants.ActivityState stateId);
    
    /**
     * 关闭
     * @param activityId 活动id
     * @param stateId 当前状态
     * @return 审核结果
     */
    Result close(Long activityId, Constants.ActivityState stateId);

    /**
     * 开启
     * @param activityId 活动id
     * @param stateId 当前状态
     * @return 审核结果
     */
    Result open(Long activityId, Constants.ActivityState stateId);

    /**
     * 运行活动中
     * @param activityId 活动id
     * @param stateId 当前状态
     * @return 审核结果
     */
    Result doing(Long activityId, Constants.ActivityState stateId);

    
    
}
